package com.hunliji.monitor.manager.rest.model.feishu;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * File：FeishuUserInfoRestModel.java<br> Title: <br> Description: <br>
 *
 * @author lejin Date: 2022/10/11
 */
@NoArgsConstructor
@Data
public class FeishuUserInfoRestModel {

    private AvatarBean avatar;
    private String city;
    private String country;
    @JsonProperty("custom_attrs")
    private List<CustomAttrsBean> customAttrs;
    @JsonProperty("department_ids")
    private List<String> departmentIds;
    private String description;
    @JsonProperty("employee_no")
    private String employeeNo;
    @JsonProperty("employee_type")
    private Integer employeeType;
    @JsonProperty("en_name")
    private String enName;
    private Integer gender;
    @JsonProperty("is_tenant_manager")
    private Boolean isTenantManager;
    @JsonProperty("job_title")
    private String jobTitle;
    @JsonProperty("join_time")
    private Integer joinTime;
    @JsonProperty("leader_user_id")
    private String leaderUserId;
    @JsonProperty("mobile_visible")
    private Boolean mobileVisible;
    private String name;
    @JsonProperty("open_id")
    private String openId;
    private List<OrdersBean> orders;
    @JsonProperty("union_id")
    private String unionId;
    @JsonProperty("user_id")
    private String userId;
    @JsonProperty("work_station")
    private String workStation;
    private String email;
    private String mobile;

    @NoArgsConstructor
    @Data
    public static class AvatarBean {

        @JsonProperty("avatar_240")
        private String avatar240;
        @JsonProperty("avatar_640")
        private String avatar640;
        @JsonProperty("avatar_72")
        private String avatar72;
        @JsonProperty("avatar_origin")
        private String avatarOrigin;
    }

    @NoArgsConstructor
    @Data
    public static class CustomAttrsBean {

        private String id;
        private String type;
        private ValueBean value;

        @NoArgsConstructor
        @Data
        public static class ValueBean {

            private String text;
        }
    }

    @NoArgsConstructor
    @Data
    public static class OrdersBean {

        @JsonProperty("department_id")
        private String departmentId;
        @JsonProperty("department_order")
        private Integer departmentOrder;
        @JsonProperty("user_order")
        private Integer userOrder;
    }
}
